Pre-determined responses for wireless devices

ABSTRACT

In accordance with one or more aspects, criteria including both a type of communication and a user signal are received. Additionally, a response to be stored as a pre-determined response is received. Both the criteria and the response are stored. When a communication satisfying the criteria (both the type of communication and the user signal) is subsequently received, the pre-determined response is sent to the device from which the communication is received.

RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patent application Ser. No. 12/210,958 entitled “Pre-Determined Responses for Wireless Devices” and filed Sep. 15, 2008, the disclosure of which is hereby incorporated by reference herein in its entirety.

BACKGROUND

Wireless devices have become commonplace, allowing users to communicate with one another via voice calls as well as messages (e.g., text messages and/or multimedia messages). Despite their popularity, problems remain with such wireless devices. One such problem is that it is sometimes difficult for a user to quickly and easily respond to a particular voice call or message. For example, if the user is in a meeting and receives a voice call or message, it can be difficult for the user to respond to that message or call. This degrades from the user experience and usefulness of the wireless devices.

SUMMARY

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

In accordance with one or more aspects, criteria including a type of communication and a user signal are received. Additionally, a response to be stored as a pre-determined response is received. Both the response and the criteria are stored for subsequent sending of the response when a communication and user signal satisfying the criteria are received.

In accordance with one or more aspects, a first wireless device receives a communication of a first type from a second device. A first signal is received from a user of the first wireless device, and a pre-determined response to the communication is identified based at least in part on both the first type and the first signal. The pre-determined response is sent to the second device.

BRIEF DESCRIPTION OF THE DRAWINGS

The same numbers are used throughout the drawings to reference like features.

FIG. 1 is a block diagram illustrating an example wireless device implementing the pre-determined responses for wireless devices in accordance with one or more embodiments.

FIG. 2 is a flowchart illustrating an example process for storing pre-determined responses and corresponding criteria in accordance with one or more embodiments.

FIG. 3 is a flowchart illustrating an example process for sending pre-determined responses in accordance with one or more embodiments.

FIG. 4 illustrates an example computing device that can be configured to implement the pre-determined responses for wireless devices in accordance with one or more embodiments.

DETAILED DESCRIPTION

Pre-determined responses for wireless devices are discussed herein. A user can identify different pre-determined responses to be sent in response to particular types of received communications. The user can also identify different signals to indicate different responses. When a communication such as a voice call or a text message is received at the user's device, the user can input a particular signal, such as pressing a particular key or inputting a particular command on a touch screen. In response to this user signal, a corresponding pre-determined response is sent to the device from which the communication was received. The user can associate different pre-determined responses with different user signals, and the same user signal can be used to identify different pre-determined responses for different types of received communications. Accordingly, the particular pre-determined response that is sent to the device from which the communication was received is dependent on both the type of communication received and the user signal that is received.

FIG. 1 is a block diagram illustrating an example wireless device 100 implementing the pre-determined responses for wireless devices in accordance with one or more embodiments. Wireless device 100 can be any of a variety of devices capable of wireless communication with one or more other devices 102(1), . . . , 102(m). In one or more embodiments, devices 102 are wireless devices, although alternatively one or more of devices 102 are not wireless devices. Devices 100 and 102 being wireless refers to the ability of the devices to communicate with one or more other devices using any of a variety of different wireless communication media. For example, device 100 can be a cellular or other wireless phone, a personal digital assistant (PDA), a handheld computer, a game console, an automotive computer, and so forth. Device 100 can communicate with devices 102 via any of a variety of communication networks, including a cellular or other wireless phone network, a satellite network, the Internet, a local area network (LAN), a public telephone network, an intranet, other public and/or proprietary networks, combinations thereof, and so forth.

Device 100 includes an input module 112, an output module 114, a matching module 116, a response generation module 118, and a response collection 120. Input module 112 and output module 114 manage the receiving of communications from and sending of communications to devices 102. These communications can be of different types. One type of such communication is a typical voice phone call, also referred to as voice communication. Another type of such communication is message communication, such as messages including text or other media. Such message communication can be, for example, messages in accordance with an SMS (Short Message Service) protocol, an MMS (Multimedia Messaging Service) protocol, a mobile instant messaging protocol, and so forth.

Response generation module 118 facilitates generation of the pre-determined responses as well as establishing of the criteria under which the pre-determined responses are to be sent to a device 102. As discussed in more detail below, these criteria include a type of communication received from a device 102 as well as a signal received from a user of device 100. Once generated, these pre-determined responses and their corresponding criteria are maintained in response collection 120. The responses to communications are generated before the communications are received by device 100, and thus are referred to as “pre-determined” responses.

Responses and their corresponding criteria are typically generated at device 100. Alternatively one or more responses and corresponding criteria can be generated at another device and communicated to device 100. By way of example, a response generation module could be included in another device (e.g., a desktop computer, a laptop computer, a server computer, etc.), and the user could use this other device to generate responses and corresponding criteria. These generated responses and corresponding criteria can then be communicated to response generation module 118 of device 100, which stores the received responses and corresponding criteria in response collection 120.

Matching module 116 analyzes communications received via input module 112, checks whether any of the criteria in collection 120 are satisfied, and identifies the corresponding pre-determined response in the event that the criteria are satisfied. Such an identified response is returned by output module 114 to the device 102 from which the communication was received. The manner in which output module 114 determines the device 102 from which the communication was received can vary. For example, a communication path or connection may be inherent in the communication process (e.g., in the case of a voice call), and device 100 can determine that the device from which the communication was received is the device at the other end of that communication path or connection. By way of another example, metadata of the communication received may identify the device 102 (e.g., a phone number of device 102 may be included as metadata in a received message).

Each pre-predetermined response can take a variety of different forms. In one or more embodiments the pre-determined response is a voice response. This voice response is, for example, an audible response generated by the user. By way of example, the user could record a voice response of “I'm in a meeting, I'll call you back as soon as I'm finished” as the voice response, or “Put me on your do not call list” as the voice response. It is to be appreciated that these voice responses are only examples, and that any of a variety of different voice responses can be used as desired by the user of device 100.

In one or more other embodiments, the pre-determined response is a message response, such as an SMS protocol message response, an MMS protocol message response, a mobile instant messaging message response, and so forth. This message response can be a text and/or other media response generated by the user via response generation module 118. By way of example, the user could input a text response of “In meeting—will call you back when done” as the message response, or select an image of a stack of papers and input a text response of “Busy—will get back with you as soon as I can” as the message response. It is to be appreciated that these message responses are only examples, and that any of a variety of different message responses can be used as desired by the user of device 100.

The pre-determined responses are discussed above as being generated by the user. However, in alternate embodiments the pre-determined responses can be generated by another user or component and obtained by response generation module 118. For example, one or more previously generated voice or message responses can be retrieved by response generation module 118 and selected by the user. Such selected responses can be used in the same manner as the user-generated responses.

The criteria includes both a type of communication received and a user signal received. These different criteria allow the user of device 100 to generate different pre-determined responses that correspond to different user signals, and thus allow the user to select a particular pre-determined response by inputting the appropriate signal. These different criteria also allow the user of device 100 to generate different pre-determined responses for different types of received communications, thus allowing the user to have a particular pre-determined response returned based on the type of received communication.

The type of communication received can take a variety of different forms. Any type of communication that device 100 can receive can be used as part of the criteria. In one or more embodiments, one type of communication is voice communication, such as a live or recorded voice. A voice communication can be, for example, a phone call from a user of a device 102, a phone call from an automated system playing a previously recorded audio message, a voice call from a user of a device 102 using a walkie-talkie or “push-to-talk” feature, and so forth. Additionally, in one or more embodiments, one type of communication is a message communication, such as an SMS protocol message, an MMS protocol message, a mobile instant messaging protocol message, and so forth. These different message communication protocols can be part of the same communication type, such as a message communication type. Alternatively, one or more of these different message communication protocols can be different communication types, such as an SMS message communication type, an MMS message communication type, a mobile instant messaging communication type, and so forth.

The user signal can be an input received via one or more of a variety of different input mechanisms supported by device 100. By way of example, the user signal can be selection of one or more physical buttons or keys of device 100, selection of one or more buttons displayed via a screen of device 100 (e.g., selected via a touchscreen), a particular input via a touchscreen of device 100 (e.g., a single tap of the touchscreen, tapping the touchscreen twice in quick succession, inputting a particular symbol such as an “X” on the touchscreen, etc.), a particular physical feedback input to the device (e.g., tapping any portion of device 100 or another action that can be recognized by a motion detection component of device 100, shaking a device, rotating a device having a gyroscope, etc.), and so forth.

When a communication is received at device 100, device 100 notifies the user of the received communication. This notification can be done in a variety of different manners, such as playing an audible notification (e.g., music, a ring tone, etc.), vibrating the device, flashing a light of the device, displaying an identifier of the device or other user from which the communication was received, and so forth. Traditionally, the user of device 100 could respond to this notification by pressing one or more buttons on device 100 or performing other actions to answer the voice call or view the message. With the pre-determined responses for wireless devices discussed herein, the user is able to input a user signal to allow the user to respond to the communication with one of the pre-determined responses.

As discussed above, the criteria corresponding to a particular pre-determined response includes both a type of communication received and a user signal received. Thus, the same user signal (e.g., a tapping of device 100, inputting a symbol such as an “X” on the touchscreen, and so forth) can be used for different types of communication received in order to cause different pre-determined responses to be returned to the device from which the communication was received. For example, if a voice call is received and the user inputs an “X” on a touchscreen of device 100, these two criteria can correspond to an “I'm in a meeting, I'll call you back as soon as I'm finished” voice response that is returned. However, if a text message is received and the user inputs an “X” on a touchscreen of device 100, these two criteria can correspond to an “In meeting—will call you back when done” message response that is returned.

Additionally, different user signals can be used for the same type of communication received in order to cause different pre-determined responses to be returned to the device from which the communication was received. For example, if a text message is received and the user inputs an “X” on a touchscreen of device 100, these two criteria can correspond to an “In meeting—will call you back when done” text message response that is returned. However, if a text message is received and the user taps a particular button of device 100 two times in quick succession, these two criteria can correspond to an image of a stack of papers and input a text response of “Busy—will get back with you as soon as I can” message response that is returned.

Response generation module 118 facilitates establishing the criteria under which pre-determined responses are to be sent. Response generation module 118 can obtain the criteria from a user of device 100 via any of a variety of different mechanisms. In one or more embodiments, module 118 displays or otherwise presents a user interface to the user, allowing the user to input the desired criteria. This user interface can present possible criteria to the user and allow the user to select from the presented criteria, or alternatively can allow the user to input (e.g., verbally, using text, etc.) the desired criteria. By way of example, different types of communication that a device supports as well as different user signals that the device supports can be displayed to the user, and the user can enter the criteria by selecting ones of these displayed types of communication and user signals.

By way of another example, different types of communication that a device supports can be displayed to the user and the user can select one of those types of communication. In addition, the user can input the particular user signal that he or she desires to use as part of the criteria, such as by pressing a particular key of device 100, making a symbol on a touchscreen of device 100 using his or her finger, tapping device 100, and so forth. Optionally a “begin record” key or button can be selected to indicate to module 118 that the user is about to begin inputting the desired user signal, and then an “end record” key or button can be selected to indicate to module 118 that the user has completed inputting the desired user signal. Module 118 senses and records any keys, buttons, motions, etc. input by the user between selection of the “begin record” key or button and selection of the “end record” key or button, and uses the sensed inputs as the desired user signal.

Response generation module 118 also facilitates the generation of the pre-determined responses. In one or more embodiments, module 118 displays or otherwise presents a user interface to the user allowing the user to input or select the pre-determined responses. The user can input or author the pre-determined responses himself or herself, such as by entering the text for a message response, entering the voice or other audio for a voice response, selecting a graphic or image for a message response, and so forth. The user can also optionally select from one or more responses generated by another user, administrator, or developer, and use the selected response as the pre-determined response. For example, the user could retrieve a response from another device (e.g., from a server via the Internet), the user could select from one or more responses stored on device 100 by a developer, manufacturer, or seller of device 100, and so forth.

FIG. 2 is a flowchart illustrating an example process 200 for storing pre-determined responses and corresponding criteria in accordance with one or more embodiments. Process 200 is carried out by a device, such as device 100 of FIG. 1 (e.g., module 118 of FIG. 1), and can be implemented in software, firmware, hardware, or combinations thereof. Process 200 is an example process for storing pre-determined responses and corresponding criteria; additional discussions of storing pre-determined responses and corresponding criteria are included herein with reference to different figures.

In process 200, criteria corresponding to a response are received (act 202). As discussed above, this criteria can be received from a user or alternatively other sources. Also as discussed above, the criteria corresponding to a particular response includes both a type of communication and a user signal.

A response is also received (act 204). As discussed above, this response can be a variety of different types of responses, such as a voice response, a message response, and so forth. This response will be returned to another device as the pre-determined response when the criteria received in act 202 are satisfied.

The received criteria and the response are stored (act 206). The received criteria and response correspond to one another, so if the criteria are subsequently satisfied then the response can be returned as the pre-determined response in response to a communication from another device. The received criteria and response are stored, for example, in response collection 120 of FIG. 1.

FIG. 3 is a flowchart illustrating an example process 300 for sending pre-determined responses in accordance with one or more embodiments. Process 300 is carried out by a device, such as device 100 of FIG. 1 (e.g., modules 116 and 114 of FIG. 1), and can be implemented in software, firmware, hardware, or combinations thereof. Process 300 is an example process for sending pre-determined responses; additional discussions of sending pre-determined responses are included herein with reference to different figures.

In process 300, at a first device a communication is received from a second device (act 302). As discussed above, this communication can be of a variety of different types, such as a voice communication or a message communication. Also as discussed above, in response to this received signal the device implementing process 300 can notify the user of the first device of the communication.

A signal is also received from a user of the first device (act 304). This user signal can take a variety of different forms as discussed above. This user signal is typically made by the user in response to the notification of the communication that was presented to the user.

Based on both the type of communication received and the user signal received, a pre-determined response is identified (act 306). As discussed above, the type of communication received and the user signal received are compared to previously stored criteria. This pre-determined response identified in act 306 is the pre-determined response that corresponds to the criteria satisfied by both the type of communication received and the signal received. This previously-determined response is sent to the second device (act 308).

It is to be appreciated that the pre-determined responses for wireless devices discussed herein can allow the user to quickly and easily return a pre-determined response to someone calling, messaging, etc. the user. For example, the user could be in a meeting, feel his or her phone vibrating (indicating an incoming call), and input a particular user signal to have the desired pre-determined response sent to the caller. This particular user signal can be input without the user ever needing to disrupt the meeting by answering the phone call, or even looking to see who is calling or removing his or her wireless device from its case.

FIG. 4 illustrates an example computing device 400 that can be configured to implement the pre-determined responses for wireless devices in accordance with one or more embodiments. Computing device 400 can be, for example, a device 100 or a device 102 of FIG. 1.

Computing device 400 includes one or more processors or processing units 402, one or more computer readable media 404 which can include one or more memory and/or storage components 406, one or more input/output (I/O) devices 408, and a bus 410 that allows the various components and devices to communicate with one another. Computer readable media 404 and/or I/O device(s) 408 can be included as part of, or alternatively may be coupled to, computing device 400. Bus 410 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. Bus 410 can include wired and/or wireless buses.

Memory/storage component 406 represents one or more computer storage media. Component 406 can include volatile media (such as random access memory (RAM)) and/or nonvolatile media (such as read only memory (ROM), Flash memory, optical disks, magnetic disks, and so forth). Component 406 can include fixed media (e.g., RAM, ROM, a fixed hard drive, etc.) as well as removable media (e.g., a Flash memory drive, a removable hard drive, an optical disk, and so forth).

The techniques discussed herein can be implemented in software, with instructions being executed by processing unit(s) 402. It is to be appreciated that different instructions can be stored in different components of computing device 400, such as in a processing unit 402, in various cache memories of a processing unit 402, in other cache memories of device 400 (not shown), on other computer readable media, and so forth. Additionally, it is to be appreciated that the location where instructions are stored in computing device 400 can change over time.

One or more input/output devices 408 allow a user to enter commands and information to computing device 400, and also allows information to be presented to the user and/or other components or devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone, a scanner, and so forth. Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, and so forth.

Various techniques may be described herein in the general context of software or program modules. Generally, software includes routines, programs, objects, components, data structures, and so forth that perform particular tasks or implement particular abstract data types. An implementation of these modules and techniques may be stored on or transmitted across some form of computer readable media. Computer readable media can be any available medium or media that can be accessed by a computing device. By way of example, and not limitation, computer readable media may comprise “computer storage media” and “communications media.”

“Computer storage media” include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computer.

“Communication media” typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as carrier wave or other transport mechanism. Communication media also include any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above are also included within the scope of computer readable media.

Generally, any of the functions or techniques described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or a combination of these implementations. The term module as used herein generally represents software, firmware, hardware, or combinations thereof. In the case of a software implementation, the module represents program code that performs specified tasks when executed on a processor (e.g., CPU or CPUs). The program code can be stored in one or more computer storage media, further description of which may be found with reference to FIG. 4. The features of the pre-determined responses for wireless devices techniques described herein are platform-independent, meaning that the techniques can be implemented on a variety of commercial computing platforms having a variety of processors.

Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. 

What is claimed is:
 1. A method implemented in a wireless device, the method comprising: receiving criteria including a user signal; receiving a response to be stored as a pre-determined response; storing, in a response collection of the wireless device, for a particular type of communication both the pre-determined response and the user signal, the response collection including multiple pre-determined responses and corresponding criteria for each of the multiple pre-determined responses; receiving a communication of the particular type from a different device; receiving the user signal from a user of the wireless device; identifying, based at least in part on both the particular type of the communication and the received user signal, the pre-determined response; and sending, to the different device, the pre-determined response.
 2. The method as recited in claim 1, the multiple pre-determined responses including an additional pre-determined response and corresponding additional criteria, the method further comprising: receiving an additional communication of the particular type from the different device; receiving an additional user signal from the user of the wireless device; identifying, based at least in part on both the particular type of the communication and the received additional user signal, the additional pre-determined response; and sending, to the different device, the additional pre-determined response.
 3. The method as recited in claim 1, the multiple pre-determined responses including an additional pre-determined response and corresponding additional criteria for an additional type of communication, the method further comprising: receiving an additional communication of the additional type from the different device; receiving an additional user signal from the user of the wireless device; identifying, based at least in part on both the additional type of the communication and the received additional user signal, the additional pre-determined response; and sending, to the different device, the additional pre-determined response.
 4. The method as recited in claim 1, the user signal comprising tapping of a touchscreen of the wireless device.
 5. The method as recited in claim 1, the user signal comprising an action recognized by a motion detection component of the wireless device.
 6. The method as recited in claim 1, the wireless device comprising a wireless phone.
 7. The method as recited in claim 1, the receiving the criteria comprising receiving the criteria from a user of the wireless device.
 8. The method as recited in claim 7, further comprising displaying a user interface that allows the user to input criteria desired by the user.
 9. The method as recited in claim 7, further comprising displaying a user interface that presents possible criteria, and the receiving the criteria comprising receiving a user selection from the possible criteria.
 10. One or more computer storage media devices having stored thereon multiple instructions that, when executed by one or more processors of a first wireless device, cause the one or more processors to: receive at the first wireless device, from a second device, a communication of a first type; receive a first signal from a user of the first wireless device; identify from a response collection in which multiple pre-determined responses are stored and in which corresponding criteria for each of the multiple pre-determined responses are stored, based at least in part on both the first type and the first signal, a pre-determined response to the communication, the stored criteria for a corresponding pre-determined response including, for the first type of communication, the first user signal; and send, to the second device, the pre-determined response.
 11. One or more computer storage media devices as recited in claim 10, the instructions further causing the one or more processors to: receive a communication of a second type from a third device; receive a second signal from the user; identify from the response collection a second pre-determined response based on both the second type and the second signal; and send, to the third device, the second pre-determined response.
 12. One or more computer storage media devices as recited in claim 11, the response collection including at the same time both the pre-determined response and the first signal as well as both the second pre-determined response and the second signal, wherein the first signal and the second signal are the same user signal.
 13. One or more computer storage media devices as recited in claim 10, the first user signal comprising tapping of a touchscreen of the wireless device.
 14. One or more computer storage media devices as recited in claim 10, the first user signal comprising an action recognized by a motion detection component of the wireless device.
 15. One or more computer storage media devices as recited in claim 10, the first user signal comprising a symbol input on a touchscreen of the wireless device.
 16. A first wireless device comprising: a processor; and one or more computer storage media devices having stored thereon multiple instructions that, when executed by the processor, cause the processor to: receive at the first wireless device, from a second device, a communication of a first type; receive a first signal from a user of the first wireless device; identify from a response collection in which multiple pre-determined responses are stored and in which corresponding criteria for each of the multiple pre-determined responses are stored, based at least in part on both the first type and the first signal, a pre-determined response to the communication, the stored criteria for a corresponding pre-determined response including, for the first type of communication, the first user signal; and send, to the second device, the pre-determined response.
 17. The first wireless device as recited in claim 16, the multiple instructions further causing the processor to: receive a communication of a second type from a third device; receive a second signal from the user; identify from the response collection a second pre-determined response based on both the second type and the second signal; and send, to the third device, the second pre-determined response.
 18. The first wireless device as recited in claim 17, the response collection including at the same time both the pre-determined response and the first signal as well as both the second pre-determined response and the second signal, wherein the first signal and the second signal are the same user signal.
 19. The first wireless device as recited in claim 16, the first user signal comprising tapping of a touchscreen of the wireless device.
 20. The first wireless device as recited in claim 16, the first user signal comprising an action recognized by a motion detection component of the wireless device. 